package cn.iocoder.yudao.module.team.dal.mysql.idcard;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.team.dal.dataobject.idcard.IdcardDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.team.controller.admin.idcard.vo.*;

/**
 * 客人身份证信息 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface IdcardMapper extends BaseMapperX<IdcardDO> {

    default PageResult<IdcardDO> selectPage(IdcardPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<IdcardDO>()
                .likeIfPresent(IdcardDO::getName, reqVO.getName())
                .eqIfPresent(IdcardDO::getSex, reqVO.getSex())
                .eqIfPresent(IdcardDO::getAge, reqVO.getAge())
                .eqIfPresent(IdcardDO::getAddress, reqVO.getAddress())
                .eqIfPresent(IdcardDO::getPhone, reqVO.getPhone())
                .eqIfPresent(IdcardDO::getType, reqVO.getType())
                .eqIfPresent(IdcardDO::getTeamOrdeId, reqVO.getTeamOrdeId())
                .eqIfPresent(IdcardDO::getTeamOrdeNumbers, reqVO.getTeamOrdeNumbers())
                .eqIfPresent(IdcardDO::getRemark, reqVO.getRemark())
                .eqIfPresent(IdcardDO::getColumn1, reqVO.getColumn1())
                .eqIfPresent(IdcardDO::getColumn2, reqVO.getColumn2())
                .eqIfPresent(IdcardDO::getColumn3, reqVO.getColumn3())
                .eqIfPresent(IdcardDO::getColumn4, reqVO.getColumn4())
                .eqIfPresent(IdcardDO::getColumn5, reqVO.getColumn5())
                .betweenIfPresent(IdcardDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(IdcardDO::getZodiac, reqVO.getZodiac())
                .eqIfPresent(IdcardDO::getIdnumber, reqVO.getIdnumber())
                .eqIfPresent(IdcardDO::getVote, reqVO.getVote())
                .orderByAsc(IdcardDO::getId));
    }

}